In an optical storage system, an optical pick-up unit (OPU) sends signals to an analog front end (AFE) or driver circuit. The AFE receives and processes the signals. Some of the signals from the OPU are differential signals and some of the signals are single ended signals. There are also two types of signaling methods, one uses a voltage mode and the other uses a current mode. When a laser in the OPU is off, the signal level is DC and is referred to as the dark level. For voltage mode signaling, the dark level is the reference voltage of the OPU and is normally set by the driver chip. For current mode signaling, when the laser is off, the current is zero, so the voltage is the termination voltage of the terminating resistor. The termination voltage is also set by the AFE. The dark level determines the DC level for the single ended signals as well as the common modes for the differential signals. The dark levels of OPU vary from one type of OPU to another type of OPU. For example, dark level may vary from 1.4v to 2.5v depending on the product and application. The signal amplitudes can also vary from one type of OPU to another type of OPU, from read to write and from one media type to another media type. Signal amplitude can be as small as tens of millivolts during read and as large as several volts during write.
A prior art driver chip was not able to adapt to the variety of operating conditions and OPU configurations. Further, analog circuitry of the AFE conventionally have a limited common range and limited signal dynamic range for achieving low cost and high performance design. Accounting for DC shifting and signal scaling can be accomplished by AC coupling or a DC level shift circuit. However, an AC coupling approach has an intrinsic performance drawback of data-dependent base line wandering. AC coupling also needs capacitors on board or on chip, which add cost. Most of the signals from the OPU carry low frequency servo information. Because AC coupling blocks out the low frequency component, it cannot be used to shift the DC for those signals carrying low frequency servo information.